package com.js.rtu.fragment.second;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.listener.OnTimeSelectListener;
import com.bigkoo.pickerview.view.TimePickerView;
import com.js.rtu.R;
import com.js.rtu.base.BaseFragment;
import com.js.rtu.config.CmdConfig;
import com.js.rtu.mvp.present.Cmd02Presenter;
import com.js.rtu.mvp.present.Cmd09Presenter;
import com.js.rtu.util.BluetoothUtils;
import com.js.rtu.util.CmdUtils;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import butterknife.BindView;
import butterknife.OnClick;


/**
 * 0809补调
 * Created by zwz on 2020/6/22.
 */
public class Cmd_08_09Fragment extends BaseFragment implements RadioGroup.OnCheckedChangeListener {


    @BindView(R.id.tv_start)
    EditText tvStart;
    @BindView(R.id.tv_end)
    EditText tvEnd;
    @BindView(R.id.rbtn_single)
    RadioButton rbtnSingle;
    @BindView(R.id.rbtn_muit)
    RadioButton rbtnMuit;
    @BindView(R.id.radio)
    RadioGroup radio;

    private String startData;//开始时间
    private String endData;//结束时间
    private static final int type_start = 0;
    private static final int type_end = 1;

    public static Cmd_08_09Fragment newInstance() {
        Bundle args = new Bundle();
        Cmd_08_09Fragment fragment = new Cmd_08_09Fragment();
        fragment.setArguments(args);
        return fragment;
    }


    @Override
    protected int getLayoutId() {
        return R.layout.fragment_tab_second_cmd_0809;
    }

    @Override
    protected void initView() {

        Date date = new Date(System.currentTimeMillis());
        startData = new SimpleDateFormat("yy MM dd HH mm ss", Locale.CHINA).format(date);
        tvStart.setText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(date));
        endData = new SimpleDateFormat("yy MM dd HH mm ss", Locale.CHINA).format(date);
        tvEnd.setText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(date));
        radio.setOnCheckedChangeListener(this);


    }

    //String mmmm="EE EE 30 30 30 30 30 30 30 30 F4 02 09 0D 39 14 07 06 11 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E7 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 06 12 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 06 13 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 06 14 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 06 15 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 06 16 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 06 17 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 07 00 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 07 01 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 07 02 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 07 03 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E8 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 07 04 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E7 0F 1E F5 0D 02 03 0B 00 0E 00 14 07 07 05 00 00 0C 00 0F 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0A 07 00 00 00 00 00 00 00 00 00 00 E7 0F 1E F5 0D 02 03 0B 00 0E 00 11 B3 FF FF ";
//String msg="EE EE 30 32 30 30 30 30 30 36 BA 00 09 03 39 15 03 18 09 05 00 0C 00 0F 06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 0A 07 4D 04 00 00 00 00 00 00 00 00 AB 0F 79 06 0D 02 03 0B 00 0E 00 15 03 18 09 0A 00 0C 00 0F 06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 0A 07 4D 04 00 00 00 00 00 00 00 00 AF 0F 79 06 0D 02 03 0B 00 0E 00 15 03 18 09 0F 00 0C 00 0F 06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 0A 07 4D 04 00 00 00 00 00 00 00 00 AB 0F 79 06 0D 02 03 0B 00 0E 00 A8 8F FF FF ";
//
    String msg2 = "EE EE 32 30 30 37 32 34 30 33 D8 00 09 03 43 15 07 0F 12 1E 00 0C 00 0F 09 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 0A 04 00 00 4C 03 96 10 C7 07 0D 02 03 0B 01 00 00 00 00 0E 00 15 07 0F 13 00 00 0C 00 0F 09 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 0A 04 00 00 4C 03 95 10 C7 07 0D 02 03 0B 01 00 00 00 00 0E 00 15 07 0F 13 1E 00 0C 00 0F 09 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 0A 04 00 00 4E 03 96 10 C7 07 0D 02 03 0B 01 00 00 00 00 0E 00 EC 38 FF FF";
//
//
//    String msg3="EE EE 32 30 30 37 32 34 30 33 50 00 02 15 07 13 0D 22 0D 0C 00 0F 09 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 71 D2 B8 41 79 A8 E2 42 DF 4F 8D 3D 0A 04 00 00 00 00 F4 10 81 07 0D 02 03 0B 01 E5 E1 C1 4E 0E 00 AC 55 FF FF";


    /**
     * 设置终端时间
     */
    private void sendData() {

        String cmd;
        String[] str_start = startData.split(" ");
        StringBuilder stringBuilder = new StringBuilder();
        for (String s : str_start) {
            stringBuilder.append(String.format("%02x", Integer.parseInt(s))).append(" ");
        }
        if (rbtnSingle.isChecked()) {
            cmd = CmdUtils.getCmd(CmdConfig.CMD_08, "01 " + stringBuilder.substring(0, stringBuilder.length() - 1));
        } else {
            String[] str_end = endData.split(" ");
            for (String s : str_end) {
                stringBuilder.append(String.format("%02x", Integer.parseInt(s))).append(" ");
            }
            cmd = CmdUtils.getCmd(CmdConfig.CMD_09, stringBuilder.substring(0, stringBuilder.length() - 1));
        }


        BluetoothUtils.send(cmd, new BluetoothUtils.onCallback() {
            @Override
            public void onReceive(String msg) {
                dismissLoadingDialog();
                Log.e("补调", msg);
                if (rbtnSingle.isChecked()) {
                    Cmd02Presenter cmd02Presenter = new Cmd02Presenter();
                    cmd02Presenter.setInfo(cmd02Presenter.paseData(msg));
                } else {
                    Cmd09Presenter cmd09Presenter = new Cmd09Presenter();
                    cmd09Presenter.setInfo(cmd09Presenter.paseData(msg));
                }

            }

            @Override
            public void onFail(String err) {
                toastShow(err);
                dismissLoadingDialog();
            }
        });

    }

    @OnClick({R.id.tv_end, R.id.tv_start, R.id.btn_set})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.tv_start:
                showDialog(type_start, tvStart);
                break;
            case R.id.tv_end:
                showDialog(type_end, tvEnd);
                break;
            case R.id.btn_set:
                sendData();
//                Cmd09Presenter cmd09Presenter = new Cmd09Presenter();
//                cmd09Presenter.setInfo(cmd09Presenter.paseData(msg));
//                Cmd02Presenter cmd02Presenter = new Cmd02Presenter();
//                cmd02Presenter.setInfo(cmd02Presenter.paseData(msg3));



                break;
        }
    }


    /**
     * 时间选择
     */
    private void showDialog(final int type, TextView textView) {
        TimePickerView pvTime = new TimePickerBuilder(_mActivity, new OnTimeSelectListener() {
            @Override
            public void onTimeSelect(Date date, View v) {
                switch (type) {
                    case type_start:
                        startData = new SimpleDateFormat("yy MM dd HH mm ss", Locale.CHINA).format(date);
                        break;
                    case type_end:
                        endData = new SimpleDateFormat("yy MM dd HH mm ss", Locale.CHINA).format(date);
                        break;
                }
                textView.setText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(date));
            }
        }).setType(new boolean[]{true, true, true, true, true, true})// 默认全部显示
                .setCancelText("取消")//取消按钮文字
                .setSubmitText("确定")//确认按钮文字
                .setTitleSize(20)//标题文字大小
                .setOutSideCancelable(false)//点击屏幕，点在控件外部范围时，是否取消显示
                .isCyclic(true)//是否循环滚动
                .setLabel("年", "月", "日", "时", "分", "秒")//默认设置为年月日时分秒
                .isCenterLabel(true) //是否只显示中间选中项的label文字，false则每项item全部都带有label。
                .isDialog(true)//是否显示为对话框样式
                .build();
        pvTime.show();
    }


    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        switch (checkedId) {
            case R.id.rbtn_single:
                tvEnd.setVisibility(View.GONE);
                break;
            case R.id.rbtn_muit:
                tvEnd.setVisibility(View.VISIBLE);
                break;
        }

    }
}
